<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/11/7
 * Time: 14:32
 */

namespace Modules\Admin\Service;

use HiCommon\Repository\ProtocolRepository;

class ProtocolService
{

    /**
     *  获取用户协议数据
     *  hinq 2019 11 07
     *
     **/
    public function get_list( array $arr_search ){

        $arr_option['where'] = ['status'=>1];
        $arr_option['order'] = ['key'=>'sort','value'=>'asc'];
        $arr_list = ProtocolRepository::get_list( (array) $arr_option ,(array) $arr_search );
        $arr_list->appends($arr_search);//添加链接参数
        $arr_list = list_page_data( $arr_list , $arr_search );
        return hello_success('成功',$arr_list);
    }


    /**
     *  添加用户协议数据
     *  hinq 2019 11 07
     *
     **/
    public function store( array $arr_input ){
        try{

            if( empty( $arr_input['title'] ) ){
                return hello_error('标题不能为空');
            }
            if( empty( $arr_input['content'] ) ){
                return hello_error('内容不能为空');
            }
            if( empty( $arr_input['type'] ) ){
                return hello_error('请选择分类');
            }

            //如果添加的是商户入驻说明和商户签订协议  只允许有一条数据存在
            if( $arr_input['type'] == 11 || $arr_input['type'] == 12 ){  //只能添加一条信息
                $count = ProtocolRepository::get_count_by_where( ['type'=> $arr_input['type']]);
                if( $count > 0 ){
                    return hello_error('当前协议已存在，禁止添加');
                }
            }
            $data['title'] = $arr_input['title'];
            $data['content'] = $arr_input['content'];
            $data['type'] = $arr_input['type'];
            $data['sort'] = $arr_input['sort'];
            $data['status'] = 1;
            $res = ProtocolRepository::add_one( (array) $data );
            if( empty($res) ){
                return hello_error('添加失败');
            }
            return hello_success('添加成功');
        }catch (\Exception $exception){
            return ['state'=>'1','msg'=>$exception->getMessage()];
        }
    }

    /**
     *  获取指定用户协议数据
     *  hinq 2019 11 07
     *
     **/
    public function get_one( int $nId ){

        try{
            if( empty( $nId ) ){
                return hello_error('参数错误');
            }
            $arr_info = ProtocolRepository::get_one( (int) $nId )->toArray();
            return $arr_info;
        }catch (\Exception $exception){
            return ['state'=>'1','msg'=>$exception->getMessage()];
        }
    }


    /**
     *  编辑用户协议数据
     *  hinq 2019 11 07
     *
     **/
    public function update( array $arr_input ){
        try{
            if( empty( $arr_input['title'] ) ){
                return hello_error('标题不能为空');
            }
            if( empty( $arr_input['content'] ) ){
                return hello_error('内容不能为空');
            }
//            if( empty( $arr_input['type'] ) ){
//                return hello_error('请选择分类');
//            }
            $data['id'] = $arr_input['id'];
            $data['title'] = $arr_input['title'];
            $data['sort'] = $arr_input['sort'];
            $data['content'] = $arr_input['content'];
            $res = ProtocolRepository::edit_one( (array) $data );
            if( empty($res) ){
                return hello_error('编辑失败');
            }
            return hello_success('编辑成功');
        }catch ( \Exception $exception){
            return ['state'=>'1','msg'=>$exception->getMessage()];
        }
    }

    /**
     *  删除用户协议数据
     *  hinq 2019 11 07
     *
     **/
    public function delete( int $nId ){
        try{
            if( empty( $nId ) ){
                return hello_error('参数错误');
            }
            $res = ProtocolRepository::delete_one( (int) $nId );
            if( empty($res) ){
                return hello_error('编辑失败');
            }
            return hello_success('编辑成功');
        }catch ( \Exception $exception){
            return ['state'=>'1','msg'=>$exception->getMessage()];
        }
    }


    /**
     *  获取隐私政策数据
     *  hinq 2019 11 07
     *
     **/
    public function get_policy_one(){
        //获取隐私政策数据【type=1】
        $where['type'] = 1;
        $info =  ProtocolRepository::get_one_by_where( (array) $where );
        if( empty( $info->first() ) ){
            return [];
        }
        return $info->toArray();
    }

    /**
     *  添加隐私政策
     *  hinq 2019 11 07
     *
     **/
    public function create_policy( array $arr_input ){

        if( empty( $arr_input['content']) ){
            return hello_error('内容不能为空');
        }
        //获取是否有数据
        $data['type'] = 1;
        $count = ProtocolRepository::get_count_by_where( (array) $data );
        if( $count == 0 ){ //没有数据   添加
            $temp['type'] = 1;
            $temp['content'] = $arr_input['content'];
            $temp['status'] = 1;
            $temp['sort'] = 100;
            $res = ProtocolRepository::add_one( (array) $temp );
            if( empty($res) ){
                return hello_error('编辑失败');
            }
            return hello_success('编辑成功');
        }else{   //编辑数据
            $temp['content'] = $arr_input['content'];
            $res = ProtocolRepository::edit_one_where( (array) ['type'=>1], (array) $temp );
            if( empty($res) ){
                return hello_error('编辑失败');
            }
            return hello_success('编辑成功');
        }
    }

    /**
     *  添加门店加盟说明数据
     *
     *
     **/
    public function create_join( array $arr_input){
        try{
            if( empty( $arr_input['title'] ) ){
                return hello_error('标题不能为空');
            }
            if( empty( $arr_input['content'] ) ){
                return hello_error('内容不能为空');
            }
            $data['title'] = $arr_input['title'];
            $data['content'] = $arr_input['content'];
            $data['type'] = 3;
            $data['status'] = 1;
            $res = ProtocolRepository::add_one( (array) $data );
            if( empty($res) ){
                return hello_error('添加失败');
            }
            return hello_success('添加成功');
        }catch (\Exception $exception){
            return ['state'=>'1','msg'=>$exception->getMessage()];
        }
    }

    /**
     *  关于我们（用户端）
     *  hinq 2019 11 13
     *
     **/
    public function get_about_one(){
        //获取隐私政策数据【type=1】
        $where['type'] = 4;
        $info =  ProtocolRepository::get_one_by_where( (array) $where );
        if( empty( $info->first() ) ){
            return [];
        }
        return $info->toArray();
    }

    /**
     *  添加隐私政策
     *  hinq 2019 11 07
     *
     **/
    public function about_create( array $arr_input ){

        if( empty( $arr_input['content']) ){
            return hello_error('内容不能为空');
        }
        //获取是否有数据
        $data['type'] = 4;
        $count = ProtocolRepository::get_count_by_where( (array) $data );
        if( $count == 0 ){ //没有数据   添加
            $temp['type'] = 4;
            $temp['content'] = $arr_input['content'];
            $temp['status'] = 1;
            $temp['sort'] = 100;
            $res = ProtocolRepository::add_one( (array) $temp );
            if( empty($res) ){
                return hello_error('编辑失败');
            }
            return hello_success('编辑成功');
        }else{   //编辑数据
            $temp['content'] = $arr_input['content'];
            $res = ProtocolRepository::edit_one_where( (array) ['type'=>4], (array) $temp );
            if( empty($res) ){
                return hello_error('编辑失败');
            }
            return hello_success('编辑成功');
        }
    }

}